Modern large enterprises typically employ data processing resources that may be substantial and widely distributed. Such enterprises generally license software under contracts that require the organizations to monitor their own usage of the software and purchase and maintain the number of licenses needed for the number of instances of the software being used. Vendors reserve the right to audit an organization's software use and under-licensing can lead to back payments and penalties. Years ago, computing environments changed relatively slowly. A computer was purchased and software was installed on the computer, either from media purchased from a publisher or from copies made by a purchaser. A single installation was associated with a single computer and vice-versa, and an installation remained installed until removed or the computer was taken out of service.
Now, however, especially in the case of large enterprises, software installations may be in a constant state of flux. Software instances may be installed that have the capacity to accommodate many users, with the number of licenses required depending on a changing number of users. Software instances may be concentrated on servers and made accessible to users through the servers, with the number of licenses needed changing as the number of users changes. In addition, software instances may appear and disappear without changes to computing hardware or installation using an external physical medium. A particular software instance may not even be associated with an actual physical machine; instead a server may host a number of virtual machines that may appear and disappear as needed, with each installation of software on a virtual machine representing a software instance that must adhere to the license terms under which the software is provided to the enterprise. The more frequently the software environment changes, the more difficult it is for conventional techniques, such as scanning of computers for software instances, to accurately identify all instances. For example, if system scans are performed periodically, a virtual machine using a software instance may appear and disappear between scans. Numerous other difficulties attend license management in large, rapidly changing systems